package ynu.lcy.service;

import org.springframework.transaction.annotation.Transactional;
import ynu.lcy.dto.cart.UpdateCartRequestDTO;
import ynu.lcy.entity.Cart;
import ynu.lcy.entity.CartFoodItem;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * 购物车服务
 * @author 梁超映
 * */
public interface CartService {
    /**
     * 获取顾客在指定商家的购物车
     *
     * @param businessId 商家ID
     * @param request    请求
     * @return 购物车
     */
    public Cart getCart(Long businessId, HttpServletRequest request);

    /**
     * 获取顾客全部购物车
     *
     * @param request 请求
     * @return 购物车列表
     */
    public List<Cart> list(HttpServletRequest request);

    /**
     * 获取指定购物车
     *
     * @param id id
     * @return 购物车
     */
    public Cart get(Long id);

    /**
     * 更新购物车
     *
     * @param dto     更新购物车请求DTO
     * @param request 请求
     * @return 是否更新成功
     */
    public CartFoodItem update(UpdateCartRequestDTO dto, HttpServletRequest request);
}
